视频与图片检索中的多模态语义匹配模型:原理、启示、应用与展望
作者 | FesianXu
GEEK TALK
01
视频和图片:信息弥散在时空中
1.1 图片的视觉元素
大多数图片的基础组成元素都是像素(Pixel)(光栅化的图片的基础组成部分是像素,而矢量图则可以通过公式进行表达。 ),像素成片成块组成了图片块(Patch)。图片涉及到的题材广泛地分布在各行各业,如Fig 1.1所示,生物影像,遥感照片,网络表情包,用户上传的自然图片,自拍,红外图像等等都可以视为是某种类型的图片。本文较多考虑的是由用户上传的自然图片,下文称之为自然图片(General images)。
△Fig 1.1 图片涉及到的题材广泛地分布在各个领域,工程,生物,互联网等等。
△Fig 1.2 图片中的视觉元素,有实体,属性和关系等,通过局部元素的组合可以构成全局视觉元素,描述整个图片的氛围。
△Fig 1.3 一些讽刺漫画,其视觉元素只是最为底层的信号。
语义对齐:指的是将文本中的视觉实体,属性描述,进行对应视觉元素的映射。此处的图文映射关系可称之为基础视觉语义。
语义融合:在语义对齐的基础上,对基础视觉语义进行融合、组合,从而形成复杂的复合视觉语义。复合视觉语义包括视觉关系,更为抽象的视觉氛围等。
△Fig 1.4 建立跨模态语义桥梁的两个阶段:语义对齐和语义融合。
1.2 视频的视觉元素
视频不是图片在时间维度上的简单展开,不同帧间图片的视觉元素在时间上的彼此关联带来了更为复杂多变的视觉符号,即便识别出了视频帧所有的视觉符号,其在时间上的简单接驳并不能完全代表视频的视觉符号。
视频的视觉符号最典型的比如动作,如Fig 1.5 (a)所示,动作序列通常是同个实体特定模式的行为,比如弯腰、捡起、起身,在以视频片段为单位的时候就能视为一整个视觉符号。动作通常是一个连续的线性符号,而视频的多帧特性意味着其存在非线性的帧间关联,如[9,10]中所介绍的通过组织视频非线性流进行动作理解的工作。非线性视频的特性在互联网视频中更为常见,如Fig 1.5 (b,c) 所示,互联网视频受到视频创作者的剪辑,视频通常都会出现镜头、场景的切换,事件的因果关系因此作为视觉符号存在于视频的非线性关系中。通常来说,视频的组成可以层次化地分为以下四部分[10],帧、镜头、事件乃至整个视频都可以视为视频的视觉元素。
帧(Frame) --> 镜头(Shot) --> 事件(Event) --> 视频(Video)
△Fig 1.5 各种类型、题材的视频,动作类,互联网上的vlog,howto类视频等包含着诸多剪辑,镜头切换等。
1.3 语义对齐/融合与信息检索
正如笔者在之前文章[25-27]中所谈到的,信息检索中最重要的一块就是相关性(Relevance),可以说相关性决定了整个搜索系统的基础体验好坏与否。在典型的搜索系统中,相关性由文本相关性进行建模,经典的有BM25、TF-IDF等基于词频的描述,在深度学习流行后,渐渐落地了各种端到端的语义相关性建模,如BERT、ERNIE等。这类型模型对相关性的建模是基于字词文本的语义匹配,如Fig 1.6(a)所示,苹果有两种常见语义,分别是电子产品和食物,Fig 1.6(b)展示了其他文本相关性的例子。
△Fig 1.7 (a)文本与视觉元素(如视觉实体)的跨模态语义对齐;(b)人类的思考逻辑会通过文字和语言,图片进行表达。
GEEK TALK
02
单模态视频/图片特征表达
2.1 图片表征
SimCLR
△Fig 2.1 (a)SimCLR的框架,(b)在SimCLR中会采用的多种图片增广方式,通过单独使用或者组合多种图片增广方式,可以生成若干原图片对应的正样本对。
△Fig 2.2 将embedding进行L2标准化后,可视为将embedding嵌入到了高维球面上,而相似度计量则可以视为是在该球面上进行向量点乘。
加大温度系数将增大对比任务的难度,会尝试将其中的难样本也区分正确;而减小温度系数将减小对比任务的难度,让任务收敛得更好。
△Table 2.1 (a)不同温度系数下,是否采用L2标准化的消融实验,采用了L2标准化后普遍表征效果优于不采用的结果,同时温度系数的大小控制着整个任务的学习难度和表征效果;(b)不同batch size大小和epoch大小下的linear probe结果,越大的batch size和越长的训练意味着更好的表征效果。
△Fig 2.3 (a) 不同模型大小下的性能结果。蓝点表示simCLR模型100个epoch训练下的结果,红虚线表示1000个epoch训练下的结果,绿色虚线表示有监督学习下的resnet(训练了90个epoch); (b) 采用更长训练周期和更大batch size下的自监督对比学习结果。
作者也研究了不同的映射
△Fig 2.4 (a) 采用不同映射方式的性能表现对比;(b) 映射之前与映射之后的代理任务性能对比。
开篇的工作——SimCLR花了较长的篇幅进行介绍,这是因为其对我们后面的基于对比学习的多模态模型的建模和设计都有指导意义。总而言之,我们从以上的讨论中,能看出目前基于对比学习的自监督表征建模,有以下需要注意的点:
大模型对于自监督对比学习很重要
大batch size和更长的训练周期很重要
采用非线性映射头很重要
合适的温度系数很重要
采用L2标准化很重要
Memory Bank 与 MoCo
从SimCLR的实验来看,增大batch size可以在更少的训练周期里面获得更好的效果,但是增大batch size通常需要更多的GPU资源。考虑到增大batch size的作用本质是增大一个iteration中能见到的负样本数量,可以考虑通过维护一个虚拟的负样本队列,通过采用历史上的负样本进行对比学习,以实现将batch size大小和负样本数量解耦的目的,而memory bank [34]就是这样一个采用负样本队列的工作。
在开始讨论memory bank工作本身之前,我们先尝试换个角度去看待对比学习,如Fig 2.5所示,我们不妨把对比学习中的正负样本匹配看成是通过query在字典里面查询,而正样本匹配则是query匹配到了正确的key,负样本匹配则是匹配到了错误的key。而编码器则可以分为Query编码器和Key编码器,在同模态建模时候QK编码器可以为相同的,在跨模态建模时候则通常是不同的。不难看出,为了Query能在字典中正确地匹配到Key,Query编码器和Key编码器的状态需要保持一致。何为状态一致呢?一般的理解来看,就是Query编码器和Key编码器在训练时是同步收到梯度影响更新的,Query编码器每更新一步,Key编码器就会更新一步。容易发现,SimCLR这种方式建模的Query编码器和Key编码器是相同的,因此QK编码器肯定是状态一致的。
△Fig 2.5 对比学习中的匹配关系,可以认为是Query在字典里面去检索,查询键为Key的内容,如果查询到了则为正样本,否则为负样本。Query和Key即可以是同模态的,比如都是图片,也可以是跨模态的,比如是文本和图片。
我们称SimCLR这种方式为端到端对比建模,如Fig 2.6 (a)所示,无论query编码器和key编码器是否是同一个编码器,其都是同时收到梯度指导而更新的,SimCLR和CLIP皆如是。而我们本节介绍的Memory Bank如Fig 2.6 (b)所示,通过维护一个虚拟的负样本队列,每次的对比学习中从这些负样本队列里面采集若干个负样本进行对比进行建模。通过这种方式可以实现负样本数量与batch size大小的解耦,具体来说,如Fig 2.7示意图所示,Memory Bank的操作方式如下所示:
Begin of Memory Bank Algorithm
1、首先用当前的Query编码器
2、从中特征池里面抽取
3、用
4、回到步骤1进行下一轮训练。
End of Memory Bank Algorithm
从这个过程来看,我们能发现这个过程中是没有Key编码器的,而Key编码的作用被memory bank这个半离线的样本储存单元给取代了。由于memory bank是在全局样本里面进行采样得到负样本,而
△Fig 2.6 (a)端到端对比建模,(b) memory bank对比建模,(c) MoCo对比建模。
△Fig 2.7 Memory Bank框架下的特征更新方式示意图。
△Table 2.2 三种不同的对比学习方式的对比,分别是端到端、MoCo和Memory Bank。
Begin of MoCo Algorithm
1、计算正样本打分,即是计算当前Query编码器和Key编码器的打分,得到
2、计算负样本打分,即是计算当前Query编码器和负样本队列的打分,得到
3、拼接正样本和负样本打分,得到
4、更新负样本队列,将当前Query编码器的表针
5、通过动量更新对Key编码器进行参数更新,以保持对Query编码器的状态跟踪。
6、重复步骤1。
End of MoCo Algorithm
△Fig 2.8 MoCo的框架示意图,主要由Query编码器,Key编码器和负样本队列组成。
MAE
△Fig 2.9 (a) MAE的框架示意图,(b) 在ImageNet验证数据和COCO验证数据上的图片恢复结果,采用的mask概率为80%,意味着196个patch只会剩下39个patch。注意到在第3排的右边结果,虽然恢复的结果和真实原图片有所不同,但其实在语义上是更为合适的。
除了MAE这种尝试对图片像素进行重建的工作外,还有一些工作尝试对图片的稀疏视觉令牌进行重建。在此之前,我们可以了解下什么叫做稀疏视觉令牌(sparse visual token),将图片进行分块后,通过模型将图片块映射到某个整型的ID,我们称之为图片块的视觉令牌化,对比稠密的浮点向量,它由于是一个整型的值,因此是稀疏的。图片的信息冗余性是能够对图片块进行视觉令牌化的重要前提,通过令牌化另一方面也可以提取图片的关键语义信息。VQ-VAE [45]就是一种尝试对图片进行稀疏视觉令牌化的工作,如Fig 2.11所示,作者通过图片的像素重建着手,将视觉的稀疏编码看成是中间的隐变量
△Fig 2.11 VQ-VAE的模型框架,通过维护一个字典对图片块编码后的向量进行最近邻查找,得到稀疏编码。
而在BEiT [47]就是尝试对这种视觉令牌进行重建,而不是对像素本身进行重建的工作。像素本身是一种最底层的视觉元素,而若干像素组成的小图片块具有的语义也较为底层,如果对像素作为粒度进行重建,容易导致模型过多关注到像素重建这个底层任务,从而忽视了高层的一些视觉元素和视觉语义。具体来说,在BEiT中,作者引入了所谓Masked Image Modeling(MIM)的任务,一听这个名字我们就想到了BERT的Masked Language Modeling(MLM),没错这个工作就是效仿BERT的思想对图片进行自监督建模。顾名思义,如Vision Transformer一样,MIM这个任务会首先对图片进行分块(Patching),然后通过dVAE [48]对图片块进行视觉令牌化(笔者认为采用VQ-VAE应该也是可以的,未曾试验过。)。如Fig 2.12所示,类似MAE的做法,首先会随机对图片进行掩膜,而不同的点在于掩膜掉的图片块并不会被抛弃,而是用一个特殊的
△Fig 2.12 BEiT的模型框架示意,其中的视觉令牌通过dVAE进行提取,BEiT编码器是标准的Vision Transformer。
△Fig 2.13 以图片块为单位进行随机掩膜 和 以区块为单位随机掩膜的区别,后者可以学习到更为全局的语义。
△Fig 2.14 BEiT v2中对稀疏视觉编码这个过程也进行了语义建模。
那么学习出来的字典是否符合预期,具有显著的语义特征呢?作者进行了字典的可视化分析,如Fig 2.15所示,在ImageNet valid图片集上对图片块,与训练好后的字典的每个词进行最近邻检索,就可以进行图片块的聚类。我们不难发现,这种方法确实能对同类型语义的视觉概念聚类到某个词向量中,这意味着学习出来的词具有显著的视觉语义概念。
△Fig 2.15 对视觉字典的可视化结果,可以看出每个词的向量对应的内容都是具有明显的视觉语义的。
2.2 视频表征
videoMAE
视频作为静态图片在时间域上的展开,其自监督建模受到了很多图片建模的启发,而VideoMAE [51]就是一个受到了图片MAE建模影响的工作,如Fig 2.16所示,videoMAE的流程和图片MAE对比来看是非常相似的。图片的MAE建模考虑随机对图片块进行掩膜,而视频是否也可以直接挪用这个方法呢?如Fig 2.17所示,视频中可行的掩膜方案有几种:随机帧掩膜(random frame masking)、随机图片块掩膜(random masking)、管式掩膜(tube masking)。正如之前的讨论,视频和图片都是有非常丰富信息冗余量的媒体,视频比起图片来说除了空间信息冗余度,还具有着时间上的冗余度(正因为视频同时有着空间和时间上的冗余度,在视频压缩中同时也有时间和空间维度的信息压缩。),这一点并不难理解,视频通常在相邻帧的变化都是缓慢的。如果和图片MAE一样采用随机图片块掩膜策略,那么在训练过程中就有可能存在信息的“在时间维度的泄漏”,而这将会导致预测当前图片块的这个目标,会倾向于通过相邻帧的信息进行填补来实现,而不是去学习其语义后进行填补,显然这并不利于模型学习视频的语义。因此本工作采用了所谓的管式掩膜(tube masking),如Fig 2.17 (d)所示,其对同个图片块的相邻帧对应的图片块也进行掩膜,从而减少模型通过“时间捷径”对缺失图片块进行填补的可能性,进而让模型优先去学习视频的语义。
△Fig 2.16 videoMAE的流程示意图,其采用了与图片随机掩膜不同的掩膜策略,即是采用管式掩膜。
△Fig 2.17 在视频中可用的几种掩膜策略,帧掩膜、随机掩膜与管式掩膜。
BEVT
我们在上文提到过,对图片像素的重建任务容易学习出低级视觉特征,而忽略高层语义特征,因此在BEiT和BEiT v2中尝试对视觉稀疏令牌化后的视觉令牌进行重建,从而保证视觉高层语义的建模。对于视频建模而言,同样存在这个问题,因此在BEVT [55]中,作者基于BEiT系列工作的启发,尝试采用对视频块稀疏化后的令牌进行重建,而不是视频像素本身。同时,由于视频固有的时间-空间语义特性,为了更好地对视频的视觉空间特性进行建模,作者采用了视频流(Video Stream)和图片流(Image Stream)同时训练的方式进行,并且其视频编码器和图片编码器是采用权值共享(weight sharing)的。整个模型框架如Fig 2.18所示,本文不对具体技术进行介绍,有兴趣的读者请移步原论文。
△Fig 2.18 BEVT的模型框架示意图。
GEEK TALK
03
语义标签的使用:走向多模态
3.1 人类语义表达与理解过程
△Fig 3.1 人类共识概念的积累在人类的交流中形成积累。
由此我们能够理解,无论是语言、图像、视频、声音、肢体动作、表情这些都是人类表达内心思维想法的手段,我们目前无法对人类最为底层的思维进行理解,因此看成为隐变量
△Fig 3.2 共识概念通过映射到共同语义空间后,实现了语义对齐。
因此我们知道了什么叫做语义(semantic),语义就是人类共识的某些具象或者抽象概念,我们还需要进一步讨论语义标签(Semantic Label)。我们之前在博文 [53] 中曾经讨论过语义标签,我们在本文为了完整性,同样会进行介绍。
3.2 语义标签
在分类任务中,我们的标签通常是“硬标签(hard label)”,指的是对于某个样本,要不是类别A,那么就是类别B,或者类别C等等,可以简单用one-hot编码表示,比如[0,1,0], [1,0,0]等,相信做过分类任务的朋友都不陌生。以ImageNet图片分类为例子,人工进行图片类别标注的过程并不是完全准确的,人也会犯错,而且犯错几率不小。那么很可能某些图片会被标注错误,而且图片信息量巨大,其中可能出现多个物体。此时one-hot编码的类别表示就难以进行完整的样本描述。我们这个时候就会认识到,原来标注是对样本进行描述,而描述存在粒度的粗细问题。one-hot编码的标签可以认为是粒度最为粗糙的一种,如果图片中出现多个物体,而我们都对其进行标注,形成multi-hot编码的标签,如[0,1,1]等,那么此时粒度无疑更为精细了,如果我们对物体在图片中的位置进行标注,形成包围盒(bounding box,bbox),那么无疑粒度又进一步精细了。
也就是说,对于标注,我们会考虑两个维度:1)标注信息量是否足够,2)标注粒度是否足够精细。然而,对于一般的xxx-hot标签而言,除了标注其类别,是不具有其他语义(semantic)信息的,也就是说,我们很难知道类别A和类别B之间的区别,类别C与类别B之间的区别。因为人类压根没有告诉他,如Fig 3.3 (a) 所示,基于one-hot标签的类别分类任务,每个标签可以视为是笛卡尔坐标系中彼此正交的轴上的基底,这意味着每个类别之间的欧式距离是一致的,也就是说,模型认为猫,狗,香蕉都是等价的类别,但是显然,猫和狗都属于动物,而香蕉属于植物。基于one-hot标注,模型无法告诉我们这一点。
△Fig 3.3 (a) 分类标签,通过one-hot编码实现,是一种非语义标签,在one-hot场景中,每个类别标签之间的距离是一致的,但是显然,猫和狗属于动物类别,而香蕉属于植物类别,这种标签无法提供足够的语义信息;(b) 语义标签,如果我们的标签是语义标签,那么此时类别标签之间的欧式距离可以衡量类别之间的相似程度,这点可视为是简单的语义信息。
也就是说,猫和狗,相比于香蕉,有着更为接近的语义,也许Fig 3.3 (b)会是个更好的选择。如果我们的标签不再是one-hot的,而是所谓的语义标签,或者在NLP领域称之为分布式标签(Distributing label, Distributing vector)或者嵌入标签(embedding label, embedding vector),那么类别标签之间的欧式距离就可以描述类别之间的相似程度,这个可视为是简单的语义信息,然而很多高层语义信息都依赖于此。
获取语义标签难以依靠于人工标注,因为人的语义标注有以下固有缺陷:
1、人类无法很好客观地描述每个视觉语义之间的相似程度。
2、视觉语义概念数不胜数,人类难以对所有概念进行标注。
3、语义是人类的群体共识,而个体的标注很容易引入个体偏见。
因此,更为可行的方法是采用自监督的方法学习模态内部/模态之间的固有结构,我们知道一个类别称之为“狗”,另一个类别称之为“猫”,还有一个类别是“香蕉”,我们通过word embedding的方法,可以得到每个类别描述的词向量,因为词向量是基于共现矩阵或者上下文局部性原理得到的,因此大概率语义相关的类别会具有类似的词向量,从而实现语义标签的生成。
当然,这种语义标签只能表达粗糙的,低层次的语义信息,比如类别之间的相似程度。如果涉及到更高层的语义呢?比如Video QA场景中,给定一个图片,我们基于图片给出一个问题,然后期望模型回答问题;比如Image Caption,给定图片,然后模型需要尝试用语言对图片进行描述。这些任务都是需要很高层次的语义标注才能实现的。通常来说,此时人工标注能做到的就是给定一个图片,让多个人以相近的标准去进行描述,然后形成图文对<image, text#1, text#2...text#n>,让模型进行学习。当然这种需要大量人力进行标注的工作量惊人,因此更好的方式是在互联网挖掘海量的无标签带噪信息,比如网页中图片的上下文可以认为是相关的,比如朋友圈,微博的图文评论等,这些带有噪声,但是又具有相关性的海量数据也是可以挖掘的。
当然,高层语义信息也依赖于底层语义的可靠,诸如目前很多transformer在多模态的应用,如ViLBERT [53],ERNIE-ViL [54]等,都依赖与词向量的可靠,然后才谈得上高层语义的可靠。从这个角度来看,其实从底层语义,底层CV&NLP任务到高层语义多模态任务,其实是有一脉相承的逻辑在的。
3.3 多模态模型需要语义标签数据
什么叫做多模态呢?我们之前已经谈到过了,无非是对于同一个概念,同一个事物通过不同的模态进行描述,常见的如用图片、视频、语言、语音对某一个场景进行描述,这就是多模态的一个例子。多模态目前是一个很火的研究方向,目前视频语义复杂,特别是在搜索推荐系统中,可能包含有各种种类的视频,光从动作语义上很难进行描述。如果扩充到其他更广阔的语义,则需要更加精细的标注才能实现。通常而言,动作分类的类别标注就过于粗糙了。
考虑到搜索推荐系统中广泛存在的长尾现象,进行事无巨细的样本标注工作显然是不可取的,再回想到我们上一节中谈到的“语义标签”的概念,即便有足够的人力进行标注,如何进行合适的样本标注设计也是一件复杂的问题。对于一张图(亦或是一个视频),单纯给予一个动作标签不足以描述整个样本的语义,额外对样本中的每个物体的位置,种类进行标注,对每个样本发生的事情进行文本描述,对样本的场景,环境进行描述,这些都是可以采取的进一步的标注方式。
怎么样的语义标签才是合适的呢?就目前而言,据笔者了解,在预训练阶段,为了保证预训练结果能够在下游任务中有效地泛化,不能对预训练的语义进行狭义的约束,比如【仅】用动作类别语义进行约束就是一个狭义约束。为了使得标注有着更为通用的语义信息,目前很多采用的是多模态融合的方法。
在多模态融合方法中,以图片为例子,可以考虑用一句话去描述一张图中的元素和内容(此处的描述语句可以是人工标注的,也可以是通过网络的海量资源中自动收集得到的,比如用户对自己上传图片的评论,网页图片上下文,描述甚至是弹幕等),比如在ERNIE-VIL [16]中采用的预训练数据集Conceptual Captions (CC) dataset [6],其标注后的样本如Fig 3.2所示。其中的虚线框是笔者添加的,我们注意到左上角的样本,其标注信息是"Trees in a winter snowstorm",通过这简单一个文本,伴随配对的图片,我们可以知道很多信息:
1、在暴风雪下,天气以白色为主。
2、树的形状和模样,一般是直立在土地上的。
3、暴风雪时候,能见度很低。
如果数据集中还有些关于树木的场景的描述文本,比如“Two boys play on the tree”, 那么模型就很有可能联合这些样本,学习到“树(tree)”这个概念,即便没有人类标注的包围盒标签(bounding box label)都可以学习出来,除此之外因为语义标签的通用性,还提供了学习到其他关于暴风雪概念的可能性。通过这种手段,可以一定程度上缓解长尾问题导致的标签标注压力。并且因为文本的嵌入特征具有语义属性,意味着文本标签可以对相近语义的表述(近义词,同义词等等)进行兼容,进一步提高了模型的通用性,这些都是多模态融合模型的特点。
综上所述,笔者认为,多模态融合模型具有以下优点:
1、对标注的精准性要求更低,可以通过人类直观的看图说话的方式进行标注。
2、通过互联网大量收集弱标注的图片描述数据,如图片评论,弹幕,用户的自我描述等。
3、语义更为通用,可作为预训练模型供多种下游任务使用。
4、可以缓解长尾问题,对语义相近的场景更为友好。
因此,笔者认为,在当前互联网弱标注数据海量存在的时代,算力大大增强的时代,在跨模态的视频,图片搜索推荐这些应用中,采用多模态融合的方法是势在必行的,是现在和未来的方向。我们后面的系列文章将会对这些方法进行简单的介绍。
△Fig 3.4 用具有更为通用语义的标注方式,进行图片的描述可以大大减少标注压力,并且提供了学习出通用语义的能力。
GEEK TALK
04
CLIP之前:多模信息的融合建模
△Fig 5.1 以CLIP为分界点前后的多模态模型以及采用的预训练数据。
4.1 图文模型
UNITER
通用图文表征学习(Universal Image-Text representation learning, UNITER)[57],笔者介绍该工作的原因,在于该工作引入了好几种图文语义融合的损失,而这些损失的优势、缺陷将带给我们启示。UNITER的模型框架如Fig 5.2所示,其输入的数据是一对配对的图文对,模型首先采用Faster RCNN网络对图片进行物体检测,将其中的物体特征(feature proposal)提取出,并作为上层语义融合模型的输入。对于文本端,则采用文本令牌化(Text tokenization)将文本转化为word embedding,同样作为Transformer的输入。此时Transformer的输入分为两大类,图片信息和文本信息。
△Fig 5.2 UNITER的模型框架,主要由Faster RCNN,文本令牌化和Transformer组成。
既然笔者认为UNITER中最重要的是多模态语义融合建模方式,那么主要介绍下在这篇文章中采用的loss。如Fig 5.3所示,UNITER主要采用的损失有:
且让我们进行统一的数学形式表示,用
1、Masked Language Modeling(MLM):这个损失如Fig 5.3 (a)所示,其思想就是随机掩膜住文本令牌,尝试通过图片信息和剩余的文本信息对该掩膜掉的文本进行预测。损失如(5-1)所示,其中的
△Fig 5.3 UNITER采用的多模态语义融合建模方式。
△Fig 5.4 UNITER的消融试验结果,我们只关注ITM和MLM试验的结果便可。
4.2 视文模式
VideoBERT
本文不会介绍太多来自于CLIP之前的多模态模型工作,对于视文模型,笔者再补充一个videoBERT [42]。videoBERT也是采用Transformer模型对文本和视觉信息进行建模,只不过此处视觉输入并不是稠密向量了,而是尝试对视觉信息进行令牌化。作为一种早期的视觉令牌化尝试,此处采用的视觉令牌是通过层次K-means聚类得到的聚类中心。对比我们提到的BEiT系列方法或者是VQ-VAE方法,这种通过聚类得到视觉令牌的做法太过于简单了些,并且很难进行规模化,理想点的方式应该是通过维护稀疏视觉词表,通过最近邻查表得到稀疏令牌,如同VQ-VAE一般。
△Fig 5.5 在VideoBERT,采用视觉令牌作为视觉模态的输入,而不是如同UNITER一般的稠密向量。
GEEK TALK
05
CLIP之后:多模信息的对比、融合建模
5.1 图文模型
CLIP
对比图文预训练(Contrastive Language-Image Pretraining, CLIP)[15] 是一个具有划时代意义的工作,在CLIP推出后,多模态的研究范式产生了巨大的变革,因此本文的行文线索将CLIP作为一个分界点,而本章则是对CLIP之后的工作进行介绍。既然要介绍CLIP之后的工作,那么CLIP本身就不可避免要大书特书了,我们本节会对CLIP进行介绍。
CLIP的模型结构本身并没有特别多值得注意的地方,其采用的是经典的双塔结构,对于图片域和文本域有着不同的图片编码器(Image Encoder)和文本编码器(Text Encoder)。其中文本编码器采用了经典的Transformer结构,而图片编码器则采用了两种:第一种是改进后的ResNet,作者选择用基于注意力的池化层去替代ResNet的全局池化层,此处的注意力机制同样是与Transformer类似的多头QKV注意力;作者同样采用ViT结构作为第二种图片编码器进行实验。本文用
此时如Fig 6.1所示,对图片嵌入特征和文本嵌入特征进行矩阵相乘。那么形成的打分矩阵上,对角线上都是配对的正样本对打分,而矩阵的其他元素,则是由同个batch内的图片和不配对的文本(相反亦然)组成的负样本。这种策略可以形成
# image_encoder - ResNet or Vision Transformer
# text_encoder - CBOW or Text Transformer
# I[n, h, w, c] - minibatch of aligned images
# T[n, l] - minibatch of aligned texts
# W_i[d_i, d_e] - learned proj of image to embed
# W_t[d_t, d_e] - learned proj of text to embed
# t - learned temperature parameter
# extract feature representations of each modality
I_f = image_encoder(I) #[n, d_i]
T_f = text_encoder(T) #[n, d_t]
# joint multimodal embedding [n, d_e]
I_e = l2_normalize(np.dot(I_f, W_i), axis=1)
T_e = l2_normalize(np.dot(T_f, W_t), axis=1)
# scaled pairwise cosine similarities [n, n]
logits = np.dot(I_e, T_e.T) * np.exp(t)
# symmetric loss function
labels = np.arange(n)
loss_i = cross_entropy_loss(logits, labels, axis=0)
loss_t = cross_entropy_loss(logits, labels, axis=1)
loss = (loss_i + loss_t)/2
△Fig 6.1 CLIP的模型框架示意图,由文本编码器和图片编码器共同组成。
CLIP的模型结构和正负样本组成策略并不复杂,其负样本构成方式是经典的batch negative方式,也即是从batch内部去构成负样本,而CLIP的贡献点在于能够采用海量的来自于互联网的图文对数据(约4亿条图文对)和超大batch size(约32000)进行预训练,并且为了能够充分学习,采用了大容量的模型结构。为何CLIP的这种“朴素”学习方式可以有效进行语义对齐呢?如Fig 6.2所示,在一次对比中,正样本可以和海量的负样本进行对比,这种对比有两种维度:
1、图-文对比:一个图片对应有一个匹配的文本(正样本),和
2、文-图对比:和图-文对比类似,一个文本对应有一个匹配的图片(正样本),和
由此分析我们不难知道,CLIP的对比学习建模方式和上文介绍到的ITM和MLM方式的本质不同,在CLIP中通过扩大负样本数量,可以以非常高的效率提高语义对齐的能力,而由于采用了双塔结构,模型只需要对
△Fig 6.2 CLIP的对比学习方式,使得能够在一次对比过程中,有效厘清正样本和负样本中的视觉语义概念。
△Fig 6.3 all_gather的示意图,all_gather会汇聚来自于不同GPU上的向量。
△Fig 6.4 CLIP的zero-shot测试流程,通过prompt的方式进行zero-shot的测试。
基于这种评估方式,以分类任务为例子,其zero-shot与强监督模型的对比结果见Fig 6.5 (b),对比的模型是强监督的resnet50(在linear probe的评估下[60]),我们发现其在一些数据集上其zero-shot能力甚至能比肩/超过强监督模型。CLIP的zero-shot和few-shot与其他模型的zero-shot/few-shot对比见Fig 6.5 (a),我们发现几个结论:
1、zero-shot CLIP已经能够比肩16 shot的BiT-M了。
2、few-shot CLIP性能远超其他few-shot模型。
3、zero-shot CLIP能够比肩4 shot CLIP,这说明了提供了少量的样本(<4)就对CLIP模型进行finetune可能并不是一个好的做法,有可能会打乱模型在预训练阶段的语义对齐结果,从而影响其泛化性能。
△Fig 6.5 (a) CLIP的few-shot与其他模型的few-shot能力对比;(b) zero-shot CLIP与强监督下的resnet50(linear probe方式下)的对比。
当然,CLIP的论文原文是一个长达40多页的超长论文,里面有着非常详尽的试验分析,在此就不展开了,有兴趣的读者不妨去原文一睹CLIP的风采。总结来看,我们以下归结下CLIP的优点和缺陷,是的,CLIP即便有着革命性的成就,同样也是有缺陷的,而对这些缺陷的改进则引出了后续的一系列工作。
CLIP为什么惊艳?
1、在zero-shot和few-shot任务中的极致性能。
2、能够利用互联网中的海量带噪声数据,避免了对人工标注数据的依赖。
3、大规模对比学习能够实现良好的跨模态语义对齐。
CLIP的缺陷?
1、粗粒度的图片与文本打分,无法建模细粒度的视觉信息:在CLIP中是采用图片粒度与文本粒度进行匹配,形成图文粒度的打分的,在这种粒度下,理论上我们无法对文本和图片中的细粒度语义进行建模。
2、难以实现语义融合: CLIP的学习方式主要集中在了语义对齐,而难以进行语义融合。举个例子,我们的数据集中可能会有“猫在沙发上”“猫在地板上”“猫在地毯上”的图片,但是很少能看到“猫在人头上”的图片,这种我们长尾例子只能通过语义融合进行解决,而CLIP难以对稀疏的组合语义进行建模。
3、集中在了高频的视觉语义概念:由于CLIP中对目标词汇已经进行过高频筛选了,因此可想而知得到的视觉概念都是一些高频的语义概念。
4、集中在了英语语料上:由于该数据主要爬取自英文社区,缺乏多语言,特别是中文的预料。
5、需要大量的GPU资源进行训练:CLIP通过增大batch size的方式去提高负样本数量,而增大batch size则需要通过分布式训练中的all_gather机制,因此需要大量的GPU资源才能增大batch size,进而提高负样本数量,资源的受限显然限制了进一步提高负样本数量的可能性。
CLIP的这些优势和缺陷,启发了后续一系列精彩纷呈的多模态工作,先事休息,然后让我们继续多模态的旅程吧。
ALIGN
1、过滤尺寸太小的图片,这类型的图片通常是无意义的图片。
2、过滤太短的文本,这种文本通常无意义。
3、删除一些自动生成的文本,比如拍摄时间等等。
在这篇工作中,自然数据集的指标是比CLIP要更好的(否则也发不出来论文对吧:P ),但是笔者觉得更应该关注的是其结果分析部分,作者进行若干试验可视化了其语义对齐结果。如Fig 6.6所示,其中的(a-b)的试验设置是这样的,给定一张图
不仅如此,我们再看到Fig 6.6 (c)(d)试验,这俩试验是通过固定文本加上一些属性,比如“detail”、“on a canvas”去检索图片,这个实验设置比前者简单些。我们不难发现,ALIGN模型除了能对视觉实体、属性、关系进行对齐外,似乎还有建模更复杂的视觉语义的能力,比如画风(“in black and white”),细粒度的视角(“view from bottom”、“view from top”...),这种能力可能是基础语义概念的组合,比如黑白画风多少可以拆分为“黑色+白色”的基础视觉属性组合,但是笔者仍然觉得对细粒度的视角关系有着如此好的感知能力,真的是非常神奇,也许基础视觉概念的组合真的是对复杂视觉语义的感知基础?!
△Fig 6.6 ALIGN的图文对齐结果可视化。
FILIP
△Fig 6.7 以ROI Detector的方式提取出图片中的ROI区域,通过对文本和ROI区域进行在线交互(在线匹配),即可实现细粒度图文匹配的目的。
当然,这个前提是有一个足够好的ROI detector,并且其计算复杂度的代价也很高,对于在线应用比如图片搜索来说是一个比较大的负担。FILIP用了一种比较直接,也比较聪明的方法实现在线交互,其方法就是『迟交互(Late Interaction)』,想办法尽可能把交互的操作后移,从而使得pipeline的前端结果可以刷库,减少在线交互的代价。
如Fig 6.8所示,FILIP的图片编码器是ViT ,对输入图片进行简单的分块后,进行线性映射输入到Transformer中,其输出就是对应每个Image Patch的Embedding向量,文本侧同样采用Transformer,其输出就是每个token的embedding。如果用
△度晓晓播报天气视频效果Fig 6.8 FILIP的框图示意,采用了跨模态迟交互后,可以进行更细粒度的匹配。
△Fig 6.9 通过对图片和文本分别进行分块(对于文本是分词,对于图片是分patch),在迟交互阶段采用的逐令牌最大相似度匹配,可以实现细粒度匹配。
Label模版:a photo of a {label}
当label为"Small white butterfly"的时候,label模版即为“a photo of a small white butterfly”,small在该模版中的第5位,white在第6位而butterfly在第7位。按照前文描述的交互方式,我们求出每个图片patch与label模版单词,其中的最大相似度匹配的模版位置ID,然后将这些位置ID中为label位置ID的进行高亮,这样就绘制出了如Fig 6.10所示的结果。我们可以发现这些label物体有些是非常细粒度的,如气球在原图中的视觉占比非常小,CLIP的结果和我们预期的一致,压根没有对这种细粒度物体进行响应。而FILIP的结果则能对图中patch中有气球部分的进行响应。FILIP不仅能对细粒度物体进行响应,对于大物体同样效果不俗,如Fig 6.10 (c)所示,这个蝴蝶占据了大半个图片,此时FILIP匹配效果同样能够超过CLIP。
△Fig 6.10 对比CLIP的结果,可以发现FILIP对于图文细粒度匹配更有优势。
WenLan
我们在介绍CLIP的一节中,已经知道了通过增大负样本数量可以有效地提高对比学习的效率。然而CLIP也好,ALIGN也罢,这些方法都属于是Table 2.2中所提到的端到端方法,其负样本数量和batch size是耦合在一起的,而提高batch size的代价就是珍贵的硬件资源,有什么方法能够将batch size和负样本数量进行解耦呢?我们在第2章其实介绍过类似的情况,MoCo就是一种通过维护负样本队列和动量更新编码器,从而实现batch size和负样本数量解耦的方法,只不过MoCo是应用在图片单模态的自监督建模的,这个思想是否能够迁移到多模态呢?
WenLan [18]就是这样的一种方法,可以视为是MoCo在图文多模态上的延伸,由于图文多模态模型具有图片和文本两个模态,两个模态都需要独立维护一个负样本队列,因此有两个负样本队列。并且,由于在MoCo中,只有Query编码器是进行梯度更新的,而Key编码器是进行动量更新的,那么在多模态模型中,我们现在有Image Encoder和Text Encoder两种模态的编码器,让谁充当Query编码器进行梯度更新,让谁充当Key编码器进行动量更新呢?答案就是在WenLan中同时存在两套Query-Key编码器,在第一套编码器中,由Image编码器充当Query编码器,Text编码器充当Key编码器;在第二套编码器中,由Text编码器充当Query编码器,由Image编码器充当Key编码器。
我们用框图详细解释下整个流程,我们以其中一套编码器
l_pos = torch.einsum('nc,nc->n', [zI, zT]).unsqueeze(-1) # 一个batch中的M个正样本打分计算,大小为M x 1
l_neg = torch.einsum('nc,ck->nk', [zI, QT.clone().detach()]) # 一个batch中的所有样本和负样本队列进行负样本打分,大小为M x K
△Code 6.1 正样本打分和负样本打分计算代码。
△Fig 6.11 WenLan的示意图,上半部分设置的是文本负样本队列,下半部分是图片负样本队列。
当然,此处只是一套编码器,如果考虑另一套编码器,那么整体框图如Fig 6.11整体所示,通过另一套编码器我们可以得到损失
用下标
我们再来说下其对负样本队列的更新策略。对于每个模态,我们会在GPU中手动维护一个队列矩阵
feature_z_gathered = concat_all_gather(feature_z) # 此处汇聚所有GPU上的相同张量。
batch_size = feature_z_gathered.shape[0]
Q[:, queue_ptr:queue_ptr + batch_size] = feature_z_gathered.transpose()
△Code 6.2 负样本队列更新策略代码示意。
△Fig 6.12 负样本队列更新图示。
刷数据集的数值指标就暂时不讨论了,我们在这个章节主要看一些WenLan的可视化结果,并且尝试对其讨论。在image caption任务中,对输入图片进行文本描述推理,如Fig 6.13所示,我们发现WenLan能对图片中的视觉语义进行很好的捕捉,比如『微笑』『清朗天空』『戏服』『红绿灯』等等。考虑到我们实际的应用场景,也即是商业图文搜索场景,我们用户的检索可能会出现视觉语义弱相关的情况,比如检索『生日快乐~』,此时Query并没有明显的视觉实体,但是可以推测出用户想要检索的其实是与『生日快乐』有关的视觉实体,比如蛋糕,生日帽,蜡烛等。
多模态模型并不能很好地解决这类型的问题,多模态模型能做到把图片的视觉概念挖掘出来就达到了设计目的,至于深入挖掘图片的更为深层次的人文背景,人物关系,作品等等,则需要采用知识图谱(Knowledge Graph)进行概念之间的关联。比如Fig 6.13中的第三个case,我们都知道这个是电影『大话西游』中的一个名场景,但是从视觉中模型只能知道是『一个穿着戏服的男人和一个穿着戏服的女孩在一起』,显然没有用户会用如此不符合检索习惯的语句进行搜索,更可能的检索是『大话西游 假如上天再给我一个机会』『大话西游 名场面』之类的。显然这些概念多模态模型无法捕捉,这也许也就是多模态模型的局限了吧。
△Fig 6.13 WenLan对图片进行描述,其能挖掘出较好的视觉语义信息。
WenLan V2 [64] 在WenLan的基础上进行了一些优化,主要有以下几点:
1、WenLan v2采用了更大的互联网图文数据集进行预训练,数据规模多达6.5亿图文对,并且由于数据来自互联网爬虫得到,没有进行过人工标注,数据更接近与真实生活数据,即是弱视觉语义数据。该数据集对比与在WenLan 1.0中采用的3000万弱语义图文对,显然在数量级上又更上一层楼。
2、从技术上看,该工作去除了WenLan中的Object Detector,因此是不依赖于物体检测结果的图文匹配模型,这个特点使得该工作更适合与实际工业界中的应用,因为涉及到了物体检测意味着需要更多的计算消耗。
3、其计算正样本打分的方式对齐了CLIP的做法,具体区别如Fig 6.14所示。
WenLan v2的细节并不是本文重点,就不多介绍,有兴趣的读者可参考笔者之前的博文[65]。
△Fig 6.14 WenLan V2和WenLan的正样本计算方式对比,在同样条件下WenLan V2能够更高效地利用当前的负样本数量。
LiT
回想到我们之前谈到的图文对数据,在理想情况下都应该如同Fig 6.15 左图所示,文本对图片中的视觉元素进行客观地描述,从而模型可以学习到文本与视觉的语义对齐,我们将这种图文对数据称之为强视觉关联(Strong Correlation)。然而在真实互联网数据中,图文对数据并不是如此的理想,很多时候文本描述并不是在描述画面的视觉元素,而是整张图的抽象含义,如Fig 6.15所示,作为对整个图的视觉描述,理想的本应该是
There are several burning candles on a fruit cake. (加粗的为视觉概念)
但是在实际的互联网数据中,很多是对整个场景的抽象描述,比如
Happy birthday! make a wish.
这种抽象描述没有任何视觉元素(实体、属性、关系等),因此我们称之为弱视觉关联(weak correlation)。单纯依靠弱视角关联数据,显然模型无法将没有任何视觉语义的文本对齐到图片中的视觉元素中,这其实也在拷问我们:我们在上文分析中,已经知道了如何对强视觉关联样本建立语义对齐,这种强视觉关联数据都是对具象视觉概念的描述,那么我们如何对抽象的概念进行视觉对齐呢?比如自由、和平、指引、积极向上等等,其实这些抽象概念大多也会有具象的某些视觉联系,比如破碎的枷锁意味着自由,橄榄枝和鸽子象征着和平,灯塔隐含着指引之意,显然抽象概念和对应的隐含视觉概念并不是强视觉关联的,因此也是属于弱视觉关联数据的一种。那么其实又回到了我们一开始的问题,如何对弱视觉关联数据进行跨模态建模呢?问得更基础些,我们如何对弱视觉关联数据进行语义对齐?不回答这个问题,我们将难以对抽象概念进行语义对齐。
△Fig 6.15 强关联样本中Query的视觉概念容易识别,弱关联样本中Query更为口语化和抽象,难以直接抽离相关视觉概念。
一种可能的回答是,通过大量视觉语义相似数据的对比,从中找出文本抽象概念与文本具象概念的对应关系。具体些,如Fig 6.16所示,假如我们想要学习出“生日快乐”与“生日蛋糕”有着强烈的相关性,那么一种可能的做法,在数据量足够多的时候,我们会有很多与蛋糕图片能够配对的文本,这些文本里面可能有抽象概念,如“生日快乐”,也可能有具象概念,比如“生日蛋糕”,而此时生日蛋糕的图片显然都是视觉语义相似的。通过相同的视觉概念作为桥梁,从而可以学习出抽象概念和具象概念的某些关联,正如Fig 6.16的例子所示,这种方法提供了模型学习出“生日蛋糕和生日快乐是相关”的能力。
以上方案的前提在于两个:第一,需要大量数据,这个互联网足以提供;第二,需要一次性对比大量样本。第一点容易理解,但第二点为何?原因在于,只有一次性对比大量样本,才能提高从中采样到相似视觉概念的图片的概率。这意味着需要提高batch size,而这受到了硬件的制约,我们得另想他法。我们之前不是谈到了其实关键在于寻找相似的视觉语义概念吗,假如我们的视觉语义学习的比较好了,是不是就能固定视觉塔模型了呢?一旦固定了视觉塔的特征,就只剩下了文本塔需要进行预训练,此时显存消耗能够大大减少,我们就能将batch size提高到新的高度。
△Fig 6.16 在数据量足够大的时候,相似的视觉概念可能会关联很多文本,这些文本既可能有抽象概念,也可能具有具象概念。
Lock-Image Tuning(LiT)[20]即便这篇工作的出发点并不是这个,但笔者仍然觉得其方法对弱视觉语义的学习有极大帮助。在LiT中,作者通过一些高质量的图片数据集(如JFT-300M、ImageNet-21K、JFT-8B...)先对视觉塔进行预训练,当视觉语义学习的比较充分后,将视觉特征固定,只对文本模型进行对比学习预训练,由于此时不涉及到最占显存的视觉模型,因此能将batch size大幅度提升。如Fig 6.17所示,在传统的CLIP方法下,视觉特征和文本特征是往着所谓的公共语义空间靠拢的,而在LiT方式下,视觉特征固定住了,只有文本特征会往着视觉特征的方向靠拢。
△Fig 6.17 CLIP和LiT方式下,视觉和文本特征的更新示意图。
△Fig 6.18 LiT文章中作者一共尝试了Lu、Uu、uu等几种设置。
且让我们简单看下LiT的其他表现,如Fig 6.19 (a)所示,在zero-shot分类任务中,LiT能比CLIP和ALIGN更有优势,但是我们也注意到,如Fig 6.19(b)的`Img -> Txt`和`Txt -> Img`试验所示,Lu和LU配置都没击败UU配置,因此目前来看,似乎LiT方式仅在zero-shot分类任务中有很大优势。注意到现实中的检索任务就是一种zero-shot任务,而实验中的跨模态检索测试数据集(比如MSCOCO)则偏向于是强视觉语义数据,因此LiT的训练方式在zero-shot分类任务上具有的优势,其实对于现实中的跨模态检索任务是有很好的启示作用的。
△Fig 6.19 LiT的zero-shot实验结果,从(b)中可以注意到Lu和LU的配置并没有在跨模态匹配中超过UU的配置。
除了从弱视觉语义的角度进行考虑之外,LiT还可以从视觉语义和文本语义的固有特点上进行思考。视觉语义具有稳定性,一个苹果(食物)的图片的语义概念是相对固定的,它不可能突然变成电子产品的苹果手机或者苹果电脑。文本语义则具有多义性、歧义性和时变性,彼时彼刻的“苹果”可能仅有食物的含义,而此时此刻的“苹果”则不仅仅表示食物,更多时候表示的是苹果公司的一系列电子产品了。从这个角度上看,一旦我们的视觉端模型学习得比较充分了,那么将其进行固定,继续去挖掘更多的文本,进而对文本端模型进行持续的训练,似乎是一种自然而然的做法了。不仅如此,由于业务场景的数据通常具有很强的时效性,一个新的流行词会在很短的时间内爆炸性地流传开,并且该流行词通常语义与其原意会有较大差别,通过固定视觉特征,持续对文本模型进行训练的方式,是对业务应用非常友好的一种方式。
ALBEF
从上文的讨论中我们发现,高效的语义对齐都是利用双塔模型,利用大规模对比学习进行预训练得到的,而双塔模型天然适合在检索、推荐场景等工业场景适用。比如在图文信息检索场景中,我们要衡量用户Query和图片之间的图文相关性。假如图片编码器是
这个世界没有银弹,双塔模型中的图片和文本信息不能在线交互的特性决定了其对一些细致的图文匹配需求无法满足。举个例子,比如去搜索『黑色上衣白色裤子』,那么百度返回的结果如图Fig 6.20 (a) 所示,除去开始三个广告不计,用红色框框出来的Top3结果中有俩结果都是『白色上衣黑色裤子』,显然搜索结果并没有理解到『黑色上衣』和『白色裤子』这两个概念,而是单独对『黑色』『白色』和『上衣』『裤子』这两个属性进行了组合,因此才会得到『白色上衣黑色裤子』被排到Top20结果的情况。而类似的结果同样在谷歌上也会出现,如Fig 6.20 (b)所示。
△Fig 6.20 百度和谷歌对“黑色上衣白色裤子”的检索结果,我们发现不管是百度还是谷歌都会排上一些“黑色裤子白色上衣”的图片。
这种多模态匹配细粒度结果不尽人意的原因,很大程度上是双塔模型中的图片编码器和文本编码器无法在线进行交互导致的。可以想象到,我们的图片编码器由于是预先对所有图片提特征进行建库的,那么就无法对所有属性的组合都进行考虑,必然的就会对一些稀疏的组合进行忽略,而倾向于高频的属性组合,因此长尾的属性组合就无法很好地建模。双塔模型这种特点,不仅仅会使得多属性的Query的检索结果倾向于高频组合,而且还会倾向于图片中的一些大尺寸物体,比如Fig 6.21中的小黄人尺寸较小,在进行特征提取的时候,其在整张图片中的重要性就有可能被其他大尺寸物体(比如键盘和显示屏等)掩盖。
△Fig 6.21 图片中的小黄人尺寸较小,特征提取结果可能会被同图片中其他大尺寸物体给掩盖。
△Fig 6.22 ALBEF的模型结构图。
1、语义对齐:通过单模态编码器(其实就是双塔模型)进行图文对比学习(Image-Text Contrastive Learning,ITC)进行图文语义对齐
2、语义融合:将语义对齐后的图/文特征在多模态编码器中进行跨模态交互,通过Masked Language Model(MLM)和图文匹配(Image-Text Matching,ICM)任务进行图文语义融合。
△Fig 6.23 ALBEF中的难负例挑选策略。
△Fig 6.24 MLM损失约束模型去融合不同实体的语义关系,从而对被掩膜后的实体做出预测。
除了MLM损失,文章中还通过图文匹配损失(Image-Text Matching,ITM)对难负样本进行匹配学习,从而期望模型能够对难负样本有着更好的区分能力,从而弥补单塔模型无法进行难负样本选取的缺点,以提升多模态模型的语义对齐和语义融合能力。作者挑选难负样本的依据是根据双塔模型的打分,如Fig 6.23所示,可以挑选出同一个Query下面最为难的Image(打分最高,但却是预测错误的),也可以挑选出同个Image下最难的Query(论文中是根据打分大小设置概率进行采样得到的)。由此可以得到
ERNIE-VIL 2.0
之前的工作大部分只采集了caption信息组成图文对进行预训练,不免浪费了互联网图片中丰富的文本信息。如Fig 6.25所示,网页中的图片附带有着众多不同类型的文本信息可供使用,如图片的标题,图片的类别信息(可以是用户自选的),图片对应的上下文信息等,这些文本信息或多或少都与图片有所关联,在预训练中或多或少能提供帮助。不仅如此,甚至还可以用Object Detector进行图片中的实体识别,对图片进行打tag,生成一系列文本。同时,在商业系统中还能通过点击信号,挖掘出用户query与图片的样本对<query, image>。
△Fig 6.25 互联网中的图片,通常附带有众多相关的文本信息。
在ERNIE VIL 2.0 [19]中,作者采用了双塔模型,同时采用了CLIP的方式,通过使用112张A100 GPU和all_gather操作,将总batch size提高到了7168。并且,最主要的是,在该论文中作者提出了“多视角对比学习(multi-view contrastive learning)”,其中的多视角指的是同一个模态中(图片、文本),不同视角的表达。比如对于图片而言,可以对图片进行图片增强(image augmentation),比如图片抖动,随机crop等。通过这种手段能生成两个视角的图片,表示原图,表示进行图片增强后的图片。对于文本模态而言,作者认为除了caption之外,这个图片的其他可用文本信息就可视为是多视角文本信息,比如在本文中,作者认为图片的tags是其多视角文本。那么,为图片的caption,为图片的tags(可以是用户自己选定的,也可以是Object Detector等模型生成的)。如Fig 6.26 所示,与单视角对比学习相比,同个模态内和跨模态间都可以组建对比损失。如公式(6-22)所示,其中为正样本对组合,为负样本对组合,其中的表示样本编号。如公式(6-23)所示,通过infoNCE损失对(6-22)中的各类型pair进行损失建模。整个ERNIE-VIL 2.0的模型结构如Fig 6.26 (c)所示。
△Fig 6.26 (a,b)多视角对比学习 与 单视角对比学习的对比。(c)ERNIE-VIL 2.0的模型结构框架。
实验结果就不贴出来了,笔者感觉这种方法比较有意思的是,它可以通过多视角文本样本扩充一些抽象实体的语义。如Fig 6.27 所示,对于(a)中的caption提到的“Dinner”,“晚餐”本质上是一个抽象的实体,没有具象化到某一类型具体的食物,而通过Object Detector得到的tag,我们能知道图片中存在西红柿,洋葱,食物等等实体,通过建立caption和tag的关联,可以让模型学习到Dinner的具象化语义。对于Fig 6.27 (b)和(c)而言,BMW E90是宝马的其中一个型号,而Gatos Manx应该是主人给猫取的爱称。汽车型号这种语义非常稀疏,而猫的姓名更是稀疏无比,在训练样本中甚至可能没有其他共现的文本出现了,这种语义很难学习出来。而通过建立caption和tag的关联,可以让模型学习到BWM E90是一种白色汽车,而Gatos Manx是一只猫(当然这个有风险,也许有人也叫这个名字呢,emm,但是如同“旺财”“福贵”在猫狗上取名的概率更大一样,这样学习出来的bias似乎也并不是没有可取之处呢?)。因此通过多视角文本的多模态预训练方式,可以扩充抽象语义,学习出稀疏语义。这是ERNIE VIL 2.0一文给予笔者最大的启发。
△度晓晓播报天气视频效果Fig 6.27 通过多视角文本预训练,可以扩充抽象语义,学习出稀疏语义。
FLIP
△Fig 6.28 在FLIP中,图片被均匀分块,将其大部分进行掩膜后,将未被掩膜部分按序排列作为图片编码器的输入,进行对比学习建模。
如Fig 6.28所示,在FLIP中作者将图片均匀分块,并且将其大部分进行随机掩膜(50%)后,将未被掩膜部分按序排列作为图片编码器的输入,通过对比学习方式进行建模,通过这种方法大幅度减少了图片端模型的显存和计算资源需求,因此能做到:
1、采用更大的batch size
2、采用更大的视觉端模型
3、能够采用更大的数据集进行预训练
如Fig 6.29所示,采用了FLIP方法后(掩膜50%或75%),能够在更短的时间内达到和原CLIP模型相同的效果,在相同训练时间内,能够达到更好的效果,加速将近3.7倍。
△Fig 6.29 采用了FLIP的方法后,能够在更短的时间内达到原CLIP相同的效果。
FLIP的方法很直接简单,一贯延续了凯明大佬的风格,在论文里面进行了极为细致的试验,我们这里只摘出一些试验进行分析。如Fig 6.30所示,这是FLIP在ImageNet-1K上进行zero-shot消融试验的结果,其中分别探索了:
1、掩膜比例的影响:掩膜达到50%的比例能够取得最好的效果,大部分图片块对于对比学习的语义对齐而言似乎都是冗余的。
2、batch size的影响:FLIP允许batch size开到64k,我们发现无论是在掩膜比例在50%或是75%,果然batch size越大效果越好。
3、是否对文本进行掩膜:文本是一种信息密度极大的媒介,直观上看对其进行掩膜会有较大损失,从实验(c)来看也确实如此,不对其进行掩膜的效果是最好的。
4、在推理阶段是否进行反掩膜:在推理阶段为了图片信息的完整性,直观的做法就是对其掩膜过程进行逆转,用完整的图片进行推理。从试验(d)上看,采用了反掩膜的方式推理效果最好。
5、是否进行反掩膜微调:由于推理时候采用了反掩膜的操作,为了预训练和推理的任务分布一致性,直观来看应该在FLIP预训练完后,对其进行少量的同分布微调。在试验(e)中,作者对FLIP预训练后的结果进行了少量的反掩膜微调,结果确实比基线为佳。
6、是否引入视觉重建任务:是否要在对比学习过程中也引入MAE的重建损失呢?试验(f)告诉我们是不需要的,也许MAE的重建任务偏向于像素级重建,而对比学习学习的语义对齐并不依赖于这种低层视觉语义吧。
△Fig 6.30 FLIP在ImageNet-1K上的zero-shot消融试验结果。
再让我们看到FLIP和CLIP的实验对比,如Fig 6.31所示,作者复现了CLIP,同时也采用了OpenCLIP的结果进行对比,采用了FLIP之后在L/14和L/16设置下都能超越CLIP和openCLIP的结果。这样看来FLIP也是值得探索的一种方法。
△Fig 6.31 FLIP与CLIP结果进行对比。
BEiT v3
△Fig 6.32 BEiT v3模型可谓是六边形战士,在诸多视觉任务、多模态任务中都以绝对优势,达到了最为领先的水准。
正如BEiT这个名字所预示的,BEiT v3是BEiT和BEiT v2模型的后续工作,这一系列的一个特点就是采用了视觉的稀疏令牌化去表征视觉特征,当然BEiT v3也不能免俗,同样是深深依赖于视觉稀疏化特征。在BEiT v3中,作者将视觉信息看成是一种“外语”(Imglish),因此将其进行视觉令牌化,令牌化的工具不再采用偏向于像素重建的VQ-VAE方法,而是采用了BEiT v2中所用的基于视觉语义的重建方法,具体请参考第2章的内容。通过视觉的稀疏令牌化,此时文本和图片都转换为了一串离散令牌,然后通过Multiway Transformer进行图片、文本、图文对的建模,如Fig 6.33所示。
△Fig 6.33 通过Multiway Transformer对图片、文本、图文对数据进行建模,通过Masked Data Modeling预训练任务进行统一建模,不再区分图片与文本的模态区别。
具体来说,如Fig 6.30所示,BEiT v3的前
Fig 6.33中的Shared Multi-Head Self-Attention模组的作用是,不区分文本还是图片亦或是图文对模态,都同样进行多头自注意机制处理,因此得名shared,也即是公式(6-24)中的
△Fig 6.34 BEiT v3可以分为视觉编码器,文本编码器和融合编码器,其中的视觉编码器和文本编码器可以单独拿出来作为双塔模型,进行检索任务。
从以上的讨论来看,BEiT v3可谓是大道至简,其只采用了MLM损失进行建模,不仅建模了单模态的表征,还同时建模了语义对齐。如Fig 6.35所示,BEiT v3在检索任务中无论是finetune后结果还是zero-shot结果,都能达到SOTA的程度。为何BEiT v3和我们之前讨论的,同为采用了MLM建模的UNITER表现差别如此之大?难道我们之前对MLM的判断有失偏颇?笔者认为,主要区别在于BEiT v3采用了足够好的视觉语义稀疏化特征,将图片块转化为了稀疏令牌进行MLM方式建模,这样有几个好处:
1、视觉的稀疏令牌和文本的令牌并无本质区别,可视为是同质的输入,对其进行MLM建模类似于是文本的自监督训练,而众所周知,文本的MLM自监督任务已经是目前文本预训练的主流范式之一了。
2、输入单元从图片块变成了单个令牌,训练效率更高,在相同的资源消耗下,可以进行更多次训练。
3、基于视觉令牌的预测,比起像素级预测,更具有语义信息。
从BEiT v3的做法来看,我们发现MLM即便是一种语义融合的建模方式,也并不是不能对语义对齐进行建模,通过引入高度语义化的视觉令牌,再进行跨模态的MLM任务,也能够高效地学习到视觉令牌与文本令牌的语义对齐与语义融合关系(为了谨慎起见,此处的描述是“视觉令牌与文本令牌的对齐”,而不是“视觉概念与文本概念的对齐”,笔者主要考虑到稀疏的视觉令牌其所蕴含的语义应该是视觉概念的子集,视觉令牌与文本令牌的对齐并不能反推出两个模态的语义对齐。)。这样看来,语义融合的损失也并不是不能高效地建模语义融合,于是我们对语义融合和语义对齐建模的认知又更进一步,这两者并不是泾渭分明的彼与此,而是紧密相关的。
△Fig 6.35 BEiT v3的试验结果,其中(a)为在MSCOCO和Flick30k上进行finetune后的结果;(b)为Flickr30K上的zero-shot结果。
5.2 视文模型
CLIP4clips
我们在之前介绍了很多CLIP之后的图文匹配模型,在大量图文数据的大规模对比学习预训练下,CLIP的图片语义对齐能力已经很强了,是否能将图片CLIP的能力迁移到视频上呢?如果将视频看成是图片在时间轴上的展开,那么将图片CLIP迁移到视频上的做法是自然而然的,在CLIP4clips [41] 中对这个做法进行了探索。如Fig 6.28所示,作者将图片CLIP预训练好的图片ViT模型参数,直接加载到视频ViT模型中,而此处的视频ViT模型,其实也是单独对视频中的每一帧进行特征提取罢了。让我们进行形式化表达,用
1、我们在图片CLIP预训练好的情况下,如何建模视频的时序信息呢?
2、为了减缓图片和视频数据上分布差异,图片CLIP是否需要在视频数据上进行后预训练(post-pretrain)呢?
我们接下来对两个问题进行探索。
△Fig 6.28 CLIP4clips的网络结构示意图。
现在我们的视频特征为
△Fig 6.29 三种不同建模视频时间序列的方法。
让我们观察下试验结果,作者在四种不同的视频测试集上进行了测试,如Fig 6.30所示,我们发现两个结论:
1、在不同数据集上,meanPool和seqLSTM/seqTransf各有攻城略地之处,在较小型的数据集上,没有引入额外参数的meanPool具有优势(比如MSVD数据集只有不到2000个视频,每个视频时长约60秒)。在数据量较多时如LSMDC数据集(含有约12万视频,每个视频时长在2-30秒之间)和ActivityNet数据集(含有约20000个youtube视频),DiDeMo数据集(含有10000个视频),能看到seqLSTM和seqTransf的效果更佳,对比CLIP-straight的结果,我们能发现虽然同为视觉信息,图片和视频的差别是很大的,因此有必要引入额外的模块对视频时序信息进行建模。
2、在所有四个测试集中,参数量最大的tightTransf方式的效果都是最差的,由于该模式引入了过多的未经过预训练的参数,因此其训练需要有更多的数据支持,在已经预训练好的模型中,引入新的参数应该尽可能地谨慎。
△Fig 6.30 CLIP4clips中对不同时序建模方式,在多个视频数据集上的测试结果。
△Fig 6.31 作者对Batch size、Learning rate、Freeze layer和Frame length等超参数进行探索。
让我们回到最后一个问题,为了弥补图片和视频之间的gap,是否需要在视频数据上进行post-pretrain呢?如Fig 6.32 (a)所示,作者在HowTo100M数据集上对模型进行了post-pretrain(用P-PT表示),我们能发现无论是在zero-shot还是在finetune设定下的P-PT都能带来一定的效果增益,这一定程度上再次证实了图片和视频之间确实存在gap,最好进行post-pretrain去减少这个gap以取得更好的效果。
△Fig 6.32 (a)对是否采用post-pretrain的结果探索;(b)对视频帧采样位置的探索。
X-CLIP
我们在FILIP这篇工作中曾经介绍过图片与文本的细粒度交互建模方式,那么延伸到视频-文本也是有相似的工作的,X-CLIP [38]就是对文本和视频进行多粒度建模的工作。如Fig 6.33所示,通过组合文本端的句子/词、视觉端的视频/帧,可以形成四种不同类型的pair,其中包含有三种不同的粒度。
△Fig 6.33 文本与视频可以组成四种的pair,包含有三种不同的粒度(粗粒度、细粒度、交叉粒度)。
如Fig 6.34所示,从模型的建模方式来看,无论是视觉端还是文本端都采用了Transformer进行建模,其中视觉端是ViT模型。为了获得文本和视频的细粒度信息,在文本侧不仅利用了[CLS]的输出特征作为句子粒度表征,同样对各个位置的token输出特征作为字词粒度表征。对于视觉端而言,不同帧位置的Transformer特征输出我们视为是帧粒度表征,而对这些表征进行mean pool后结果我们视为是视频粒度表征。且让我们形式化表达,我们用
△Fig 6.34 X-CLIP中每个模态能分别产出粗粒度和细粒度的特征,进行交叉组合后能产生4种不同pair的相似度打分,通过AOSM模块对交叉粒度和细粒度打分矩阵/向量进行聚合。
让我们用一个对比实验结束这一章的内容,如Fig 6.35所示,作者在MSR-VTT数据集上,通过组合这四种粒度的打分,进行消融试验对比。其中有几个观察:
1、观察Exp1 - Exp4,我们发现采用了细粒度Word-Frame对比的结果,不一定就比粗粒度的Sent-Video对比更好,笔者猜测,完全通过细粒度去建模对比,可能会缺失一些全局信息,对于检索而言可能并不是一件好事儿。
2、观察Exp4、Exp1与Exp7,我们发现一旦细粒度的Word-Frame对比加上Sent-Frame的交叉粒度对比,其表现就能超过粗粒度表现了,这意味着不仅需要单纯建模细粒度信息,同时还需要考虑粗粒度的信息(比如此时文本是句子粒度的)。同样的结论也可以对比试验Exp1、Exp4和Exp6,或者Exp1、Exp4和Exp10得到。
3、加上了粗粒度,细粒度和交叉粒度后的结果,在所有设定中取得了最优,给我们了一个启示,即便建模了细粒度,也不能抛弃粗粒度和交叉粒度的应用,否则可能学习不充分,导致不能得到最佳效果。
△Fig 6.35 X-CLIP在MSR-VTT数据集上,对不同粒度的打分进行组合后的检索性能表现对比。
GEEK TALK
06
End of Journey
这是一个漫长的多模态旅途,感谢作为读者和笔者的你我,都能共同到达这里,我们本文算是告一段落了。我们在本文介绍了一些比较有启发性的工作,限于篇幅笔者不可能对浩如烟海的多模态文献都进行整理,作为一个总结,目前常见的多模态匹配模型的优化点,笔者认为可以大致归结为Table 7.1所示的几种方向,其中加粗表示本文进行过介绍。
△Table 7.1 常见的多模态匹配模型的优化方向,以及代表性的工作。
人类的感知是基于外界环境的多模态信息交互获得的,多模信息可谓是人类最为自然的输入模式,可能也是通往更深一层人工智能的通路。笔者深知多模态模型之复杂,因此本文只是对多模态语义匹配模型的一些简单总结,有非常多优秀的工作由于笔者精力、能力有限而未曾细读,实属遗憾,本文仅以抛砖引玉,如若某处能对读者有所帮助,则笔者撰此文的目的就达到了。
如若谈到这些工作的实际业务应用情况,笔者认为对于工业界的应用而言,这些学术论文大多不能直接迁移,原因很简单,业务场景与学术场景有太多gap了。以搜索场景为例子,我们举几个例子:
1、我们的文本侧大多不像是学术工作里面的caption文本,而是用户query,query与caption之间有着太大的gap,并且不同业务之间的用户query也有着显著的差别。一个模型和方法在某个业务上能work,并不代表其能在另一个业务上work,因此读者会发现本文,并没有特别关注到学术论文在benchmark上的指标,而是尝试去挖掘其中可能带来的启发,这些启发对我们认知业务与学术区别有所裨益,在结合了业务知识后能够帮助我们更好地推进业务模型优化。
2、不仅是文本侧有明显gap,在视频/图片上,学术数据和业务数据差别也非常大,在业务中更多的是所谓的弱视觉语义数据,因此我们会发现一些细粒度和多粒度的方法是非常值得尝试的。
3、业务数据规模太大也导致很多方法不能以合理的成本推广,并且受限于上线方式,很多学术前言探索需要落地,需要考虑很多架构优化和方法上的简化。
此处尚远不是终点啊,希望我们以后有机会在新的篇章里面继续我们的多模态旅途,路漫漫其修远兮,吾将上下而求索。
END
Appendix A. 数据集整理:
[1]. https://fesianxu.github.io/2022/12/24/video-understanding-20221223/, https://blog.csdn.net/LoseInVain/article/details/105545703,万字长文漫谈视频理解
[2]. https://fesianxu.github.io/2022/12/24/general-video-analysis-1-20221224/, 视频分析与多模态融合之一,为什么需要多模态融合
[3]. https://github.com/basveeling/pcam, PatchCamelyon (PCam)
[4]. https://github.com/phelber/EuroSAT, EuroSAT : Land Use and Land Cover Classification with Sentinel-2
[5]. https://ai.facebook.com/blog/hateful-memes-challenge-and-data-set/, Hateful Memes Challenge and dataset for research on harmful multimodal content
[6]. Yu, F., Tang, J., Yin, W., Sun, Y., Tian, H., Wu, H., & Wang, H. (2021, May). Ernie-vil: Knowledge enhanced vision-language representations through scene graphs. In Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 35, No. 4, pp. 3208-3216). Short for ERNIE-VIL 1.0
[7]. https://www.bilibili.com/video/BV1644y1S7H3, 我想,这以后便是在农村扎根了吧
[8]. https://www.bilibili.com/video/BV1Mg411J7kp, 自制钓鱼佬智能快乐竿
[9]. https://fesianxu.github.io/2022/12/24/nonlinear-struct-video-20221224/, https://blog.csdn.net/LoseInVain/article/details/108212429, 基于图结构的视频理解——组织视频序列的非线性流
[10]. Mao, Feng, et al. “Hierarchical video frame sequence representation with deep convolutional graph network.” Proceedings of the European Conference on Computer Vision (ECCV). 2018.
[11]. Lin, T.Y., Maire, M., Belongie, S., Hays, J., Perona, P., Ramanan, D., Doll´ar, P., Zitnick, C.L.: Microsoft coco: Common objects in context. In: ECCV (2014)
[12]. Krishna, R., Zhu, Y., Groth, O., Johnson, J., Hata, K., Kravitz, J., Chen, S., Kalantidis, Y., Li, L.J., Shamma, D.A., et al.: Visual genome: Connecting language and vision using crowdsourced dense image annotations. IJCV (2017)
[13]. Sharma, P., Ding, N., Goodman, S., Soricut, R.: Conceptual captions: A cleaned, hypernymed, image alt-text dataset for automatic image captioning. In: ACL (2018)
[14]. Ordonez, V., Kulkarni, G., Berg, T.L.: Im2text: Describing images using 1 million captioned photographs. In: NeurIPS (2011)
[15]. Radford, A., Kim, J. W., Hallacy, C., Ramesh, A., Goh, G., Agarwal, S., ... & Sutskever, I. (2021, July). Learning transferable visual models from natural language supervision. In International Conference on Machine Learning (pp. 8748-8763). PMLR. Short for CLIP
[16]. Gu, J., Meng, X., Lu, G., Hou, L., Niu, M., Xu, H., ... & Xu, C. (2022). Wukong: 100 Million Large-scale Chinese Cross-modal Pre-training Dataset and A Foundation Framework. arXiv preprint arXiv:2202.06767. short for WuKong
[17]. Jia, C., Yang, Y., Xia, Y., Chen, Y. T., Parekh, Z., Pham, H., ... & Duerig, T. (2021, July). Scaling up visual and vision-language representation learning with noisy text supervision. In International Conference on Machine Learning (pp. 4904-4916). PMLR. Short for ALIGN
[18]. Huo, Y., Zhang, M., Liu, G., Lu, H., Gao, Y., Yang, G., ... & Wen, J. R. (2021). WenLan: Bridging vision and language by large-scale multi-modal pre-training. arXiv preprint arXiv:2103.06561. short for WenLan 1.0
[19]. Shan, B., Yin, W., Sun, Y., Tian, H., Wu, H., & Wang, H. (2022). ERNIE-ViL 2.0: Multi-view Contrastive Learning for Image-Text Pre-training. arXiv preprint arXiv:2209.15270. short for ERNIE-VIL 2.0
[20]. Zhai, X., Wang, X., Mustafa, B., Steiner, A., Keysers, D., Kolesnikov, A., & Beyer, L. (2022). Lit: Zero-shot transfer with locked-image text tuning. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 18123-18133). Short for LiT
[21]. Thomee, B., Shamma, D. A., Friedland, G., Elizalde, B., Ni, K., Poland, D., ... & Li, L. J. (2016). YFCC100M: The new data in multimedia research. Communications of the ACM, 59(2), 64-73.
[22]. Changpinyo, S., Sharma, P., Ding, N., & Soricut, R. (2021). Conceptual 12m: Pushing web-scale image-text pre-training to recognize long-tail visual concepts. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 3558-3568).
[23]. Miech, A., Zhukov, D., Alayrac, J. B., Tapaswi, M., Laptev, I., & Sivic, J. (2019). Howto100m: Learning a text-video embedding by watching hundred million narrated video clips. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 2630-2640).
[24]. Li, Y., Fan, H., Hu, R., Feichtenhofer, C., & He, K. (2022). Scaling Language-Image Pre-training via Masking. arXiv preprint arXiv:2212.00794. Short for FLIP
[25]. https://blog.csdn.net/LoseInVain/article/details/116377189, 从零开始的搜索系统学习笔记
[26]. https://blog.csdn.net/LoseInVain/article/details/126214410, 【见闻录系列】我所理解的搜索业务二三事
[27]. https://blog.csdn.net/LoseInVain/article/details/125078683, 【见闻录系列】我所理解的“业务”
[28]. Chen, T., Kornblith, S., Norouzi, M., & Hinton, G. (2020, November). A simple framework for contrastive learning of visual representations. In International conference on machine learning (pp. 1597-1607). PMLR. short for SimCLR
[29]. https://blog.csdn.net/LoseInVain/article/details/125194144, 混合精度训练场景中,对比学习损失函数的一个注意点
[30]. Noroozi, M. and Favaro, P. Unsupervised learning of visual representations by solving jigsaw puzzles. In European Conference on Computer Vision, pp. 69–84. Springer, 2016. short fot jigsaw puzzles
[31]. Zhang, R., Isola, P., and Efros, A. A. Colorful image colorization. In European conference on computer vision, pp. 649–666. Springer, 2016. short for colorization
[32]. Gidaris, S., Singh, P., & Komodakis, N. (2018). Unsupervised representation learning by predicting image rotations. arXiv preprint arXiv:1803.07728. short for rotations
[33]. He, K., Fan, H., Wu, Y., Xie, S., & Girshick, R. (2020). Momentum contrast for unsupervised visual representation learning. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition (pp. 9729-9738). short for MoCo
[34]. Wu, Z., Xiong, Y., Yu, S. X., & Lin, D. (2018). Unsupervised feature learning via non-parametric instance discrimination. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 3733-3742). short for Memory Bank
[35]. https://blog.csdn.net/LoseInVain/article/details/120039316, Batch Norm层在大尺度对比学习中的过拟合现象及其统计参数信息泄露问题
[36]. He, K., Chen, X., Xie, S., Li, Y., Dollár, P., & Girshick, R. (2022). Masked autoencoders are scalable vision learners. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 16000-16009). short for MAE
[37]. Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, and Neil Houlsby. An image is worth 16x16 words: Transformers for image recognition at scale. In ICLR, 2021. short for ViT
[38]. Ma, Y., Xu, G., Sun, X., Yan, M., Zhang, J., & Ji, R. (2022, October). X-CLIP: End-to-End Multi-grained Contrastive Learning for Video-Text Retrieval. In Proceedings of the 30th ACM International Conference on Multimedia (pp. 638-647). Short for X-CLIP
[39]. Yao, L., Huang, R., Hou, L., Lu, G., Niu, M., Xu, H., ... & Xu, C. (2021). Filip: Fine-grained interactive languageimage pre-training. arXiv preprint arXiv:2111.07783. short for FILIP
[40]. Li, J., Selvaraju, R., Gotmare, A., Joty, S., Xiong, C., & Hoi, S. C. H. (2021). Align before fuse: Vision and language representation learning with momentum distillation. Advances in neural information processing systems, 34, 9694-9705.
[41]. Luo, H., Ji, L., Zhong, M., Chen, Y., Lei, W., Duan, N., & Li, T. (2022). CLIP4Clip: An empirical study of CLIP for end to end video clip retrieval and captioning. Neurocomputing, 508, 293-304. short for CLIP4clips
[42]. Sun, C., Myers, A., Vondrick, C., Murphy, K., & Schmid, C. (2019). Videobert: A joint model for video and language representation learning. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 7464-7473). Short for VideoBERT
[43]. Chen, Y. C., Li, L., Yu, L., El Kholy, A., Ahmed, F., Gan, Z., ... & Liu, J. (2020, August). Uniter: Universal imagetext representation learning. In European conference on computer vision (pp. 104-120). Springer, Cham. Short for UNITER
[44]. Zhai, X., Wang, X., Mustafa, B., Steiner, A., Keysers, D., Kolesnikov, A., & Beyer, L. (2022). Lit: Zero-shot transfer with locked-image text tuning. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 18123-18133). Short for LiT
[45]. Van Den Oord, Aaron, and Oriol Vinyals. "Neural discrete representation learning." Advances in neural information processing systems 30 (2017). short for VQ-VAE
[46]. https://fesianxu.github.io/2022/12/24/discrete-latent-representation-20221223/,【论文极速读】VQ-VAE:一种稀疏表征学习方法
[47]. Bao, Hangbo, Li Dong, Songhao Piao, and Furu Wei. "Beit: Bert pre-training of image transformers." arXiv preprint arXiv:2106.08254 (2021). short for BEiT
[48]. Vahdat, Arash, Evgeny Andriyash, and William Macready. "Dvae#: Discrete variational autoencoders with relaxed boltzmann priors." Advances in Neural Information Processing Systems 31 (2018). short for dVAE
[49]. Peng, Zhiliang, Li Dong, Hangbo Bao, Qixiang Ye, and Furu Wei. "Beit v2: Masked image modeling with vector-quantized visual tokenizers." arXiv preprint arXiv:2208.06366(2022). short for BEiT v2
[50]. Caron, M., Touvron, H., Misra, I., Jégou, H., Mairal, J., Bojanowski, P., & Joulin, A. (2021). Emerging properties in self-supervised vision transformers. In Proceedings of the IEEE/CVF international conference on computer vision (pp. 9650-9660). short for DINO
[51]. Tong, Zhan, Yibing Song, Jue Wang, and Limin Wang. "Videomae: Masked autoencoders are data-efficient learners for self-supervised video pre-training." arXiv preprint arXiv:2203.12602 (2022). short for VideoMAE
[52]. https://fesianxu.github.io/2023/01/20/semantic-label-20230120/, 语义标签(Semantic label)与多模态模型的一些关系
[53]. Lu, Jiasen, Dhruv Batra, Devi Parikh, and Stefan Lee. "Vilbert: Pretraining task-agnostic visiolinguistic representations for vision-and-language tasks." arXiv preprint arXiv:1908.02265 (2019). short for ViLBERT
[54]. Yu, Fei, Jiji Tang, Weichong Yin, Yu Sun, Hao Tian, Hua Wu, and Haifeng Wang. “Ernie-vil: Knowledge enhanced vision-language representations through scene graph.” arXiv preprint arXiv:2006.16934 (2020). short for ERNIE-VIL 1.0
[55]. Wang, R., Chen, D., Wu, Z., Chen, Y., Dai, X., Liu, M., ... & Yuan, L. (2022). Bevt: Bert pretraining of video transformers. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 14733-14743). short for BEVT
[56]. https://blog.csdn.net/LoseInVain/article/details/114958239, 语义标签(Semantic label)与多模态模型的一些关系
[57]. Chen, Y. C., Li, L., Yu, L., El Kholy, A., Ahmed, F., Gan, Z., ... & Liu, J. (2020, September). Uniter: Universal image-text representation learning. In Computer Vision–ECCV 2020: 16th European Conference, Glasgow, UK, August 23–28, 2020, Proceedings, Part XXX (pp. 104-120). Cham: Springer International Publishing. short for UNITER
[58]. https://pytorch.org/docs/stable/distributed.html, DISTRIBUTED COMMUNICATION PACKAGE - TORCH.DISTRIBUTED
[59]. https://amsword.medium.com/gradient-backpropagation-with-torch-distributed-all-gather-9f3941a381f8, Gradient backpropagation with torch.distributed.all_gather
[60]. https://blog.csdn.net/LoseInVain/article/details/103870157, 一些深度学习中的英文术语的纪录
[61]. https://blog.csdn.net/LoseInVain/article/details/122735603, 图文多模态语义融合前的语义对齐——一种单双混合塔多模态模型
[62]. https://github.com/facebookresearch/moco/blob/78b69cafae80bc74cd1a89ac3fb365dc20d157d3/moco/builder.py#L53
[63]. https://blog.csdn.net/LoseInVain/article/details/105808818, 数据并行和模型并行的区别
[64]. Fei, Nanyi, Zhiwu Lu, Yizhao Gao, Guoxing Yang, Yuqi Huo, Jingyuan Wen, Haoyu Lu et al. “WenLan 2.0: Make AI Imagine via a Multimodal Foundation Model.” arXiv preprint arXiv:2110.14378 (2021). short for WenLan v2
[65]. https://blog.csdn.net/LoseInVain/article/details/121699533, WenLan 2.0:一种不依赖Object Detection的大规模图文匹配预训练模型 & 数据+算力=大力出奇迹
[66]. Li, Junnan, Ramprasaath Selvaraju, Akhilesh Gotmare, Shafiq Joty, Caiming Xiong, and Steven Chu Hong Hoi. "Align before fuse: Vision and language representation learning with momentum distillation." Advances in Neural Information Processing Systems 34 (2021). short for ALBEF
[67]. salesforce/ALBEF#22
[68]. Wang, Wenhui, Hangbo Bao, Li Dong, Johan Bjorck, Zhiliang Peng, Qiang Liu, Kriti Aggarwal et al. "Image as a foreign language: Beit pretraining for all vision and vision-language tasks." arXiv preprint arXiv:2208.10442 (2022). short for BEiT v3
[69]. Bao, H., Wang, W., Dong, L., Liu, Q., Mohammed, O. K., Aggarwal, K., ... & Wei, F. (2021). Vlmo: Unified vision-language pre-training with mixture-of-modality-experts. arXiv preprint arXiv:2111.02358.
[70]. Shrivastava, A., Selvaraju, R. R., Naik, N., & Ordonez, V. (2021). CLIP-Lite: information efficient visual representation learning from textual annotations. arXiv preprint arXiv:2112.07133. short for CLIP-Lite